在进行数据库迁移的过程中,用户时常对迁移目标端数据库的兼容性、性能心存疑虑,流量回放主要针对此痛点提供工具化的解决方案,对即将迁移割接到的目标端数据库兼容性与性能进行全面曝光。本文介绍SQL Server数据库流量回放功能的使用流程,帮助您快速掌握如何使用流量回放进行数据源压测。
1、License申请与查看
在云迁移中心页面,依次点击割接->流量回放进入产品界面,首次进入会看到使用引导,第一步为License申请,点击申请License按钮,会自动生成一个License。申请License是为了防止Agent被滥用,起到保护Agent的作用,License本身包括后续的Agent能力(购买ECS除外),流量回放的使用都不会产生费用。
申请完成后,可以在页面看到License的过期时间(有效期为三个自然月),点击可以看到当前License
2、Agent管理
License申请完成后,需要进行流量回放Agent的部署,需要您提供一台或多台ECS来供CMH进行Agent的部署,具体ECS数量请根据实际情况进行评估。
ECS规格建议:至少8核16G
操作系统建议:CentOS,Alibaba Cloud linux
网络要求:创建的ECS需要和数据源网络打通
其他要求:部署前请自行在ECS安装java
部署说明:
如果使用的是阿里云上ECS,且ECS安装有云助手(阿里云创建的ECS默认就有云助手),建议使用自动部署方式进行Agent安装;
如果非阿里云ECS,但和阿里云VPC打通,或者虽然是阿里云ECS但机器未安装或由于某些原因安装不成功云助手,建议使用手动部署-私网连接方式部署Agent。
如果非阿里云ECS,且网络未打通,但有公网IP的,建议使用手动部署-公网连接方式部署Agent。
下面是三种部署模式的具体说明:
2.1 自动部署
目前,支持自动部署的地域有杭州、上海,如有其他地域的部署需求,请通过售后在线联系我们。
注:
自动部署只支持阿里云创建的ECS。
安装前请先开通私网连接服务。
准备好ECS后,点击Agent管理进入Agent的安装页面
点击Agent安装开始安装Agent流程
安装方式选择“自动部署”,依次填写Agent名称、选择地域、选择ECS,完成后,点击提交,CMH会自动完成流量回放Agent的部署流程。
部署过程中,可以看到Agent的部署过程。
部署完成后,可以在Agent列表看到部署的Agent。
2.2 手动部署
2.2.1 公网手动部署
公网手动部署,需要ECS开通公网,CMH可以连接到ECS。
注:
ECS可以是任意平台或者IDC的机器,只需要CMH可以公网访问。
准备好ECS后,点击Agent管理进入Agent的安装页面
点击Agent安装开始安装Agent流程
安装方式选择“手动部署”,依次填写Agent名称、选择公网、填写IP和端口,完成后,点击下一步
在下一步中,会给出该ECS的安装指令,点击拷贝将该指令拷贝后,到ECS粘贴后执行,即可以完成Agent在ECS的部署。
部署完成后,继续点击下一步,然后点击连接按钮,开始与Agent建立连接。
建立连接过程可以在线查看
部署完成后,可以在Agent列表看到部署的Agent。
2.2.2 私网手动部署
私网手动部署,支持的地域有杭州、上海,如有其他地域的部署需求,请通过售后在线联系我们。
注:
ECS可以是阿里云或非阿里云机器,只需要VPC打通。
安装前请先开通私网连接服务。
准备好ECS后,点击Agent管理进入Agent的安装页面
点击Agent安装开始安装Agent流程
安装方式选择“手动部署”,依次填写Agent名称、选择私网、选择地域,选择VPC,填写IP和端口,完成后,点击下一步
在下一步中,会给出该ECS的安装指令,点击拷贝将该指令拷贝后,到ECS粘贴后执行,即可以完成Agent在ECS的部署。
安装完成后,继续点击下一步,然后点击连接按钮,开始与Agent建立连接。
建立连接过程可以在线查看
部署完成后,可以在Agent列表看到部署的Agent。
2.3 Agent操作
2.3.1 停止
自动部署的Agent,状态为在线时,可以通过点击停止按钮,来关停该Agent
停止后,ECS上Agent会被停止,列表状态为停止,停止状态的Agent不可以执行回放任务。
2.3.2 启动
停止状态的Agent,可以通过点击启动按钮,来启动该Agent
启动后,Agent状态变为在线。
2.3.3 删除
不再使用的Agent,可以在Agent列表进行删除,删除前,需要将该Agent与回放计划进行解绑。
2.4.4 重连
手动部署的Agent,在Agent的断连后,Agent状态会被置为离线,在Agent确认启动后,可以点击重连使CMH与Agent重新建立连接
重连成功后,Agent状态重新置为在线。
3、新建回放计划
3.1 创建计划
前提条件:
创建回放计划之前,需要先按照上文指引完成Agent的安装。
请提前抓取源端数据源的生产流量,不同的数据源采集方式不同,请选择合适的流量抓取方案,抓格式见文档,replay_sql_example.json抓取完成后,转为回放要求的json格式。
请提前将回放使用的json文件上传至Agent。
完成agent的安装后可进入回放计划的创建,整体业务流程是先创建回放计划,然后在回放计划中创建回放任务,一个回放计划中可以包含多个回放任务。
进入云迁移中心,在 割接-流量回放中,点击新建回放计划即可开始创建回放计划。
第一步:填写基本信息。
目前支持的源端数据库类型包括与目标端数据库类型如下(其中源端数据库类型暂不支持PostgreSQL):
在使用SQL Server流量回放时,选择数据库类型为SQL Server即可。
SQL文件路径:需要将回放SQL文件上传到Agent的ECS的某个目录下,并将文件绝对路径填在输入框。
agent选择与数据库连通性测试:只能选择处于正常状态的agent,且数据库连通性测试通过后,在完成计划创建后,创建的任务才能被正常执行。
第二步:填写回放计划基本参数,如下图。
模拟客户端数:控制并发数,数值越大,并发数越高。
回放速度因子:速度控制,数值越大,速度越高,如1表示原速,2表示2倍速度,10表示10倍速度。
3.2 计划详情
完成计划创建后,可以在流量回放的列表中看到所登录账号下的所有的流量回放计划。点击计划标题或者操作中的详情按钮可以进入计划详情。
基本信息:展示计划ID、源数据类型、目标数据类型、最后一次任务状态、创建时间、SQL文件路径等信息。
任务概况:展示当前回放计划下的所有回放任务的整体情况,包括回访执行次数、最近一次回放成功率、成功请求数、总请求数、agent列表等信息。
任务列表:展示当前回访计划下的回放任务列表。
3.3 创建回放任务
完成回放计划的创建后,在回放计划详情中可以创建回放任务(如下图)。
点击“创建任务”后开始创建回放任务,回放任务被创建后不会立即执行,创建后需要手动点击“执行”,所以测试过程中可以放心创建。一些关键参数的释义如下:
选择agent:只能选择正常状态下的agent
模拟客户端参数:回放并发执行线程数。
回放速度因子:速度控制,1表示原速,2表示2倍速度,10表示10倍速度。
是否循环回放:是否循环回放,如果开启循环回放,会忽略“回放速度因子”参数,以最大压力回放,开启循环回放后,根据设置的“回放运行时长”到期自动结束。循环回放过程中对应的写语句,如INSERT,UPDATE等可能会反复报错,建议回放类型只执行DQL。
回放运行时长:运行时间,单位秒,控制任务运行多长时间,到期会自动结束。
schema映射和过滤:例如:schema1:schema2,schema2,只重放schema1、schema2,且schema1映射到schema2。
SQL超时时间:SQL执行的超时时间。
是否commit:是否commit,默认frodo会手动开启事务进行回放,执行完一条SQL后会rollback,如果需要commit,可以设置为是。
是否跳过报错SQL:是否跳过已经报错过的相同SQL指纹的SQL,默认关闭。
创建好任务后,在任务列表的行操作中点击“执行”可开始执行该任务。
3.4 查看任务进度
创建任务后,在任务的状态列中点击“查看进度”即可查看任务进度。
3.5 查看回放报告
在任务执行完成后,点击任务行操作的详情按钮可以查看回放报告。
请求概况:查看请求总数、平均执行时间、平均RT等信息。
执行详情:以列表形式,展示每个Sql模板的执行情况,包括Sample Sql、schema、执行状态、请求数、请求错误数、源端RT、目标端RT。在行操作中可以查看错误信息。
导出报告:点击右上角按钮可以导出Excel格式的报告。